package cn.edu.scau.cmi.huangzhiyuan.singleton;

import java.util.ArrayList;

/**
 * 十大元帅类，
 * 用于多例模式
 */
public class Leader {
	public static ArrayList<String> names = null;
	private static int MAX_NUM = 10;
	
	// 私有化构造方法
	private Leader() {
	}
	
	/*
	 * 返回list克隆副本，
	 * 防止被修改保护的值
	 */
	public static ArrayList<String> getInstance(){
		if(names == null) {
			names = new ArrayList<>();
		}
		
		// 用于复制string
		StringBuilder str = new StringBuilder();
		// 用于复制list
		ArrayList<String> arr = new ArrayList<>();
		// 遍历进行复制
		for(int i=0; i<names.size(); i++) {
			// 加入list
			str.append(names.get(i));
			arr.add(str.toString());
			// 刪除原来的字符串
			str.delete(0, names.get(i).length());
		}
		
		// 返回副本list
		return arr;
	}
	
	/*
	 * 添加将军
	 */
	public static boolean add(String name) {
		// 初始化空list
		if(names == null) {
			getInstance();
		}
		// 判断是否超过额定个数
		if(names.size() < MAX_NUM) {
			// 添加
			names.add(names.size(), name);
			
			return true;
		}
		
		return false;
	}
}
